package com.cu.employmentmanagementsystem.dao;

import com.cu.employmentmanagementsystem.dto.StudentVitaDTO;
import com.cu.employmentmanagementsystem.entity.StudentVita;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.dao.DataAccessException;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;

@Repository
@Mapper
public interface StudentVitaDao {
    /**
     * 插入数据
     *
     * @param studentVita
     * @return 影响行数
     */
    int insert(StudentVita studentVita);
    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int delete(Long id);
    /**
     * 更新数据
     *
     * @param studentVita
     * @return 影响行数
     */
    int update(StudentVita studentVita);
    /**
     * 更新审核状态
     *
     * @param studentVita
     * @return 影响行数
     */
    int updatePeviewStatus(StudentVita studentVita);
    /**
     * 查询简历
     *
     * @param studentVita
     * @return 简历对象的List集合
     */
    List<StudentVita> select(StudentVita studentVita);
    /**
     * 通过主键查询简历
     *
     * @param id 主键
     * @return 一条简历信息
     */
    StudentVita selectOne(Long id);

    /**
     * 根据用户ID查询学生的个人简介信息。
     *
     * @param userId 用户ID，用于从数据库中检索学生的个人简介信息。
     * @return 返回与给定用户ID相关联的{@link StudentVita}对象，如果不存在则返回null。
     * @throws DataAccessException 如果在数据库访问过程中发生错误。
     */
    StudentVita selectByStudentId(Long userId);


    /**
     * 根据招聘信息ID查询简历信息
     *
     * @param recruitmentId 招聘信息ID
     * @return 简历信息列表（StudentVitaDTO类型）
     */
    List<StudentVitaDTO> queryResumesByRecruitmentId(Long recruitmentId);

    List<StudentVita> getAllUnJudgeVitas();
}
